package 动态代理;

import java.text.SimpleDateFormat;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class ProxyStar {
    public static Object getProxy(Object obj) {
        return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj
                .getClass().getInterfaces(), new InvocationHandler() {

            @Override
            public Object invoke(Object proxy, Method method, Object[] args)
                    throws Throwable {
                //获取方法的名字
                String methodName = method.getName();
                //如果是唱歌，进行增强
                if (methodName.equals("sing")) {
                    int money = (int) args[0];
                    if (money < 1000) {
                        System.out.println("没有档期");
                        return null;
                    }
                }
                //调用原来的方法
                return method.invoke(obj, args);
            }
        });
    }
}
